Load Data

dataset <- read.delim("raw_data/Figure1D.txt", stringsAsFactors = FALSE)

dataset$genotype <-  factor(gsub(" $","",dataset$genotype), levels = c("WT", "PARP1 KO", "ALC1 KO #1", "ALC1 KO #2", "ALC1 KO #3", "ALC1 KO PARP1 KO #1", "ALC1 KO PARP1 KO #2"))
                            
dataset$Experiment <- factor(rep(paste0("exp", 1:(length(dataset$genotype)/length(levels(dataset$genotype)))), each=length(unique(dataset$genotype))))

# genotype+Experiment gives unique ID (UID)
dataset$UID <- factor(paste(dataset$Experiment, dataset$genotype))

# wide format
kable(dataset, row.names = F)
genotype NT olaparib_30nM olaparib_300nM olaparib_3000nM Experiment UID
WT 2550 2460 1504 1112 exp1 exp1 WT
PARP1 KO 2816 2652 2640 1648 exp1 exp1 PARP1 KO
ALC1 KO #1 2448 1016 860 560 exp1 exp1 ALC1 KO #1
ALC1 KO #2 4024 2176 1792 1117 exp1 exp1 ALC1 KO #2
ALC1 KO #3 3296 1524 1274 826 exp1 exp1 ALC1 KO #3
ALC1 KO PARP1 KO #1 3376 2877 2496 1664 exp1 exp1 ALC1 KO PARP1 KO #1
ALC1 KO PARP1 KO #2 3332 2912 2164 2080 exp1 exp1 ALC1 KO PARP1 KO #2
WT 3296 2512 1864 1256 exp2 exp2 WT
PARP1 KO 2992 2632 2480 1832 exp2 exp2 PARP1 KO
ALC1 KO #1 2860 1456 1060 636 exp2 exp2 ALC1 KO #1
ALC1 KO #2 3440 1852 928 664 exp2 exp2 ALC1 KO #2
ALC1 KO #3 2976 1776 1266 832 exp2 exp2 ALC1 KO #3
ALC1 KO PARP1 KO #1 4384 4120 3176 2864 exp2 exp2 ALC1 KO PARP1 KO #1
ALC1 KO PARP1 KO #2 2704 2328 2064 1416 exp2 exp2 ALC1 KO PARP1 KO #2
WT 2784 2704 2184 1424 exp3 exp3 WT
PARP1 KO 1759 1714 1688 1219 exp3 exp3 PARP1 KO
ALC1 KO #1 3800 2452 1988 1078 exp3 exp3 ALC1 KO #1
ALC1 KO #2 3688 2628 2024 1352 exp3 exp3 ALC1 KO #2
ALC1 KO #3 3504 2592 2184 1344 exp3 exp3 ALC1 KO #3
ALC1 KO PARP1 KO #1 3984 3532 3104 3072 exp3 exp3 ALC1 KO PARP1 KO #1
ALC1 KO PARP1 KO #2 1056 967 876 620 exp3 exp3 ALC1 KO PARP1 KO #2
WT 3288 2792 2496 1742 exp4 exp4 WT
PARP1 KO 1631 1554 1468 1058 exp4 exp4 PARP1 KO
ALC1 KO #1 3264 1932 1488 874 exp4 exp4 ALC1 KO #1
ALC1 KO #2 3488 1840 1768 1040 exp4 exp4 ALC1 KO #2
ALC1 KO #3 3024 2016 1428 822 exp4 exp4 ALC1 KO #3
ALC1 KO PARP1 KO #1 3600 2880 2864 2328 exp4 exp4 ALC1 KO PARP1 KO #1
ALC1 KO PARP1 KO #2 1776 1746 1507 906 exp4 exp4 ALC1 KO PARP1 KO #2
library(reshape2)
# reshape to long format
dataset <- melt(dataset, variable.name = "Treatment", value.name = "Counts")

dataset$genotype <- relevel(dataset$genotype, ref = "WT")
dataset$UID <- relevel(dataset$UID, ref = "exp1 WT")

dataset$Olaparib <- gsub("NT","1",dataset$Treatment)
dataset$Olaparib <- gsub("olaparib_|nM","",dataset$Olaparib)
dataset$Olaparib <- log10(as.integer(dataset$Olaparib))




dataset$Offset <- NA
for(uid in levels(dataset$UID)){
        dataset$Offset[dataset$UID == uid] <- mean(dataset$Counts[dataset$UID == uid])
}

dataset$NormCounts <- dataset$Counts / dataset$Offset



dataset$Offset2 <- NA
for(gidx in levels(dataset$genotype)){
        dataset$Offset2[dataset$genotype == gidx] <- mean(dataset$NormCounts[dataset$genotype == gidx & dataset$Olaparib == 0])
}

dataset$NormCounts2 <- dataset$NormCounts / dataset$Offset2



# long format
kable(dataset, row.names = F)
genotype Experiment UID Treatment Counts Olaparib Offset NormCounts Offset2 NormCounts2
WT exp1 exp1 WT NT 2550 0.000000 1906.50 1.3375295 1.328293 1.0069537
PARP1 KO exp1 exp1 PARP1 KO NT 2816 0.000000 2439.00 1.1545715 1.151065 1.0030467
ALC1 KO #1 exp1 exp1 ALC1 KO #1 NT 2448 0.000000 1221.00 2.0049140 1.816617 1.1036527
ALC1 KO #2 exp1 exp1 ALC1 KO #2 NT 4024 0.000000 2277.25 1.7670436 1.750702 1.0093341
ALC1 KO #3 exp1 exp1 ALC1 KO #3 NT 3296 0.000000 1730.00 1.9052023 1.689658 1.1275670
ALC1 KO PARP1 KO #1 exp1 exp1 ALC1 KO PARP1 KO #1 NT 3376 0.000000 2603.25 1.2968405 1.225043 1.0586077
ALC1 KO PARP1 KO #2 exp1 exp1 ALC1 KO PARP1 KO #2 NT 3332 0.000000 2622.00 1.2707857 1.234693 1.0292324
WT exp2 exp2 WT NT 3296 0.000000 2232.00 1.4767025 1.328293 1.1117295
PARP1 KO exp2 exp2 PARP1 KO NT 2992 0.000000 2484.00 1.2045089 1.151065 1.0464302
ALC1 KO #1 exp2 exp2 ALC1 KO #1 NT 2860 0.000000 1503.00 1.9028609 1.816617 1.0474751
ALC1 KO #2 exp2 exp2 ALC1 KO #2 NT 3440 0.000000 1721.00 1.9988379 1.750702 1.1417349
ALC1 KO #3 exp2 exp2 ALC1 KO #3 NT 2976 0.000000 1712.50 1.7378102 1.689658 1.0284984
ALC1 KO PARP1 KO #1 exp2 exp2 ALC1 KO PARP1 KO #1 NT 4384 0.000000 3636.00 1.2057206 1.225043 0.9842267
ALC1 KO PARP1 KO #2 exp2 exp2 ALC1 KO PARP1 KO #2 NT 2704 0.000000 2128.00 1.2706767 1.234693 1.0291441
WT exp3 exp3 WT NT 2784 0.000000 2274.00 1.2242744 1.328293 0.9216900
PARP1 KO exp3 exp3 PARP1 KO NT 1759 0.000000 1595.00 1.1028213 1.151065 0.9580881
ALC1 KO #1 exp3 exp3 ALC1 KO #1 NT 3800 0.000000 2329.50 1.6312513 1.816617 0.8979611
ALC1 KO #2 exp3 exp3 ALC1 KO #2 NT 3688 0.000000 2423.00 1.5220801 1.750702 0.8694111
ALC1 KO #3 exp3 exp3 ALC1 KO #3 NT 3504 0.000000 2406.00 1.4563591 1.689658 0.8619255
ALC1 KO PARP1 KO #1 exp3 exp3 ALC1 KO PARP1 KO #1 NT 3984 0.000000 3423.00 1.1638913 1.225043 0.9500816
ALC1 KO PARP1 KO #2 exp3 exp3 ALC1 KO PARP1 KO #2 NT 1056 0.000000 879.75 1.2003410 1.234693 0.9721780
WT exp4 exp4 WT NT 3288 0.000000 2579.50 1.2746656 1.328293 0.9596268
PARP1 KO exp4 exp4 PARP1 KO NT 1631 0.000000 1427.75 1.1423569 1.151065 0.9924350
ALC1 KO #1 exp4 exp4 ALC1 KO #1 NT 3264 0.000000 1889.50 1.7274411 1.816617 0.9509111
ALC1 KO #2 exp4 exp4 ALC1 KO #2 NT 3488 0.000000 2034.00 1.7148476 1.750702 0.9795198
ALC1 KO #3 exp4 exp4 ALC1 KO #3 NT 3024 0.000000 1822.50 1.6592593 1.689658 0.9820091
ALC1 KO PARP1 KO #1 exp4 exp4 ALC1 KO PARP1 KO #1 NT 3600 0.000000 2918.00 1.2337217 1.225043 1.0070840
ALC1 KO PARP1 KO #2 exp4 exp4 ALC1 KO PARP1 KO #2 NT 1776 0.000000 1483.75 1.1969671 1.234693 0.9694454
WT exp1 exp1 WT olaparib_30nM 2460 1.477121 1906.50 1.2903226 1.328293 0.9714141
PARP1 KO exp1 exp1 PARP1 KO olaparib_30nM 2652 1.477121 2439.00 1.0873309 1.151065 0.9446306
ALC1 KO #1 exp1 exp1 ALC1 KO #1 olaparib_30nM 1016 1.477121 1221.00 0.8321048 1.816617 0.4580519
ALC1 KO #2 exp1 exp1 ALC1 KO #2 olaparib_30nM 2176 1.477121 2277.25 0.9555385 1.750702 0.5458030
ALC1 KO #3 exp1 exp1 ALC1 KO #3 olaparib_30nM 1524 1.477121 1730.00 0.8809249 1.689658 0.5213629
ALC1 KO PARP1 KO #1 exp1 exp1 ALC1 KO PARP1 KO #1 olaparib_30nM 2877 1.477121 2603.25 1.1051570 1.225043 0.9021369
ALC1 KO PARP1 KO #2 exp1 exp1 ALC1 KO PARP1 KO #2 olaparib_30nM 2912 1.477121 2622.00 1.1106026 1.234693 0.8994972
WT exp2 exp2 WT olaparib_30nM 2512 1.477121 2232.00 1.1254480 1.328293 0.8472890
PARP1 KO exp2 exp2 PARP1 KO olaparib_30nM 2632 1.477121 2484.00 1.0595813 1.151065 0.9205229
ALC1 KO #1 exp2 exp2 ALC1 KO #1 olaparib_30nM 1456 1.477121 1503.00 0.9687292 1.816617 0.5332601
ALC1 KO #2 exp2 exp2 ALC1 KO #2 olaparib_30nM 1852 1.477121 1721.00 1.0761185 1.750702 0.6146782
ALC1 KO #3 exp2 exp2 ALC1 KO #3 olaparib_30nM 1776 1.477121 1712.50 1.0370803 1.689658 0.6137813
ALC1 KO PARP1 KO #1 exp2 exp2 ALC1 KO PARP1 KO #1 olaparib_30nM 4120 1.477121 3636.00 1.1331133 1.225043 0.9249576
ALC1 KO PARP1 KO #2 exp2 exp2 ALC1 KO PARP1 KO #2 olaparib_30nM 2328 1.477121 2128.00 1.0939850 1.234693 0.8860383
WT exp3 exp3 WT olaparib_30nM 2704 1.477121 2274.00 1.1890941 1.328293 0.8952047
PARP1 KO exp3 exp3 PARP1 KO olaparib_30nM 1714 1.477121 1595.00 1.0746082 1.151065 0.9335776
ALC1 KO #1 exp3 exp3 ALC1 KO #1 olaparib_30nM 2452 1.477121 2329.50 1.0525864 1.816617 0.5794212
ALC1 KO #2 exp3 exp3 ALC1 KO #2 olaparib_30nM 2628 1.477121 2423.00 1.0846059 1.750702 0.6195262
ALC1 KO #3 exp3 exp3 ALC1 KO #3 olaparib_30nM 2592 1.477121 2406.00 1.0773067 1.689658 0.6375887
ALC1 KO PARP1 KO #1 exp3 exp3 ALC1 KO PARP1 KO #1 olaparib_30nM 3532 1.477121 3423.00 1.0318434 1.225043 0.8422912
ALC1 KO PARP1 KO #2 exp3 exp3 ALC1 KO PARP1 KO #2 olaparib_30nM 967 1.477121 879.75 1.0991759 1.234693 0.8902425
WT exp4 exp4 WT olaparib_30nM 2792 1.477121 2579.50 1.0823803 1.328293 0.8148656
PARP1 KO exp4 exp4 PARP1 KO olaparib_30nM 1554 1.477121 1427.75 1.0884258 1.151065 0.9455819
ALC1 KO #1 exp4 exp4 ALC1 KO #1 olaparib_30nM 1932 1.477121 1889.50 1.0224927 1.816617 0.5628555
ALC1 KO #2 exp4 exp4 ALC1 KO #2 olaparib_30nM 1840 1.477121 2034.00 0.9046214 1.750702 0.5167192
ALC1 KO #3 exp4 exp4 ALC1 KO #3 olaparib_30nM 2016 1.477121 1822.50 1.1061728 1.689658 0.6546727
ALC1 KO PARP1 KO #1 exp4 exp4 ALC1 KO PARP1 KO #1 olaparib_30nM 2880 1.477121 2918.00 0.9869774 1.225043 0.8056672
ALC1 KO PARP1 KO #2 exp4 exp4 ALC1 KO PARP1 KO #2 olaparib_30nM 1746 1.477121 1483.75 1.1767481 1.234693 0.9530697
WT exp1 exp1 WT olaparib_300nM 1504 2.477121 1906.50 0.7888801 1.328293 0.5939052
PARP1 KO exp1 exp1 PARP1 KO olaparib_300nM 2640 2.477121 2439.00 1.0824108 1.151065 0.9403562
ALC1 KO #1 exp1 exp1 ALC1 KO #1 olaparib_300nM 860 2.477121 1221.00 0.7043407 1.816617 0.3877211
ALC1 KO #2 exp1 exp1 ALC1 KO #2 olaparib_300nM 1792 2.477121 2277.25 0.7869140 1.750702 0.4494848
ALC1 KO #3 exp1 exp1 ALC1 KO #3 olaparib_300nM 1274 2.477121 1730.00 0.7364162 1.689658 0.4358375
ALC1 KO PARP1 KO #1 exp1 exp1 ALC1 KO PARP1 KO #1 olaparib_300nM 2496 2.477121 2603.25 0.9588015 1.225043 0.7826673
ALC1 KO PARP1 KO #2 exp1 exp1 ALC1 KO PARP1 KO #2 olaparib_300nM 2164 2.477121 2622.00 0.8253242 1.234693 0.6684451
WT exp2 exp2 WT olaparib_300nM 1864 2.477121 2232.00 0.8351254 1.328293 0.6287208
PARP1 KO exp2 exp2 PARP1 KO olaparib_300nM 2480 2.477121 2484.00 0.9983897 1.151065 0.8673620
ALC1 KO #1 exp2 exp2 ALC1 KO #1 olaparib_300nM 1060 2.477121 1503.00 0.7052562 1.816617 0.3882250
ALC1 KO #2 exp2 exp2 ALC1 KO #2 olaparib_300nM 928 2.477121 1721.00 0.5392214 1.750702 0.3080029
ALC1 KO #3 exp2 exp2 ALC1 KO #3 olaparib_300nM 1266 2.477121 1712.50 0.7392701 1.689658 0.4375265
ALC1 KO PARP1 KO #1 exp2 exp2 ALC1 KO PARP1 KO #1 olaparib_300nM 3176 2.477121 3636.00 0.8734873 1.225043 0.7130256
ALC1 KO PARP1 KO #2 exp2 exp2 ALC1 KO PARP1 KO #2 olaparib_300nM 2064 2.477121 2128.00 0.9699248 1.234693 0.7855597
WT exp3 exp3 WT olaparib_300nM 2184 2.477121 2274.00 0.9604222 1.328293 0.7230499
PARP1 KO exp3 exp3 PARP1 KO olaparib_300nM 1688 2.477121 1595.00 1.0583072 1.151065 0.9194160
ALC1 KO #1 exp3 exp3 ALC1 KO #1 olaparib_300nM 1988 2.477121 2329.50 0.8534020 1.816617 0.4697755
ALC1 KO #2 exp3 exp3 ALC1 KO #2 olaparib_300nM 2024 2.477121 2423.00 0.8353281 1.750702 0.4771389
ALC1 KO #3 exp3 exp3 ALC1 KO #3 olaparib_300nM 2184 2.477121 2406.00 0.9077307 1.689658 0.5372275
ALC1 KO PARP1 KO #1 exp3 exp3 ALC1 KO PARP1 KO #1 olaparib_300nM 3104 2.477121 3423.00 0.9068069 1.225043 0.7402242
ALC1 KO PARP1 KO #2 exp3 exp3 ALC1 KO PARP1 KO #2 olaparib_300nM 876 2.477121 879.75 0.9957374 1.234693 0.8064658
WT exp4 exp4 WT olaparib_300nM 2496 2.477121 2579.50 0.9676294 1.328293 0.7284759
PARP1 KO exp4 exp4 PARP1 KO olaparib_300nM 1468 2.477121 1427.75 1.0281912 1.151065 0.8932524
ALC1 KO #1 exp4 exp4 ALC1 KO #1 olaparib_300nM 1488 2.477121 1889.50 0.7875099 1.816617 0.4335036
ALC1 KO #2 exp4 exp4 ALC1 KO #2 olaparib_300nM 1768 2.477121 2034.00 0.8692232 1.750702 0.4964997
ALC1 KO #3 exp4 exp4 ALC1 KO #3 olaparib_300nM 1428 2.477121 1822.50 0.7835391 1.689658 0.4637265
ALC1 KO PARP1 KO #1 exp4 exp4 ALC1 KO PARP1 KO #1 olaparib_300nM 2864 2.477121 2918.00 0.9814942 1.225043 0.8011913
ALC1 KO PARP1 KO #2 exp4 exp4 ALC1 KO PARP1 KO #2 olaparib_300nM 1507 2.477121 1483.75 1.0156698 1.234693 0.8226094
WT exp1 exp1 WT olaparib_3000nM 1112 3.477121 1906.50 0.5832678 1.328293 0.4391108
PARP1 KO exp1 exp1 PARP1 KO olaparib_3000nM 1648 3.477121 2439.00 0.6756868 1.151065 0.5870103
ALC1 KO #1 exp1 exp1 ALC1 KO #1 olaparib_3000nM 560 3.477121 1221.00 0.4586405 1.816617 0.2524696
ALC1 KO #2 exp1 exp1 ALC1 KO #2 olaparib_3000nM 1117 3.477121 2277.25 0.4905039 1.750702 0.2801755
ALC1 KO #3 exp1 exp1 ALC1 KO #3 olaparib_3000nM 826 3.477121 1730.00 0.4774566 1.689658 0.2825760
ALC1 KO PARP1 KO #1 exp1 exp1 ALC1 KO PARP1 KO #1 olaparib_3000nM 1664 3.477121 2603.25 0.6392010 1.225043 0.5217782
ALC1 KO PARP1 KO #2 exp1 exp1 ALC1 KO PARP1 KO #2 olaparib_3000nM 2080 3.477121 2622.00 0.7932876 1.234693 0.6424980
WT exp2 exp2 WT olaparib_3000nM 1256 3.477121 2232.00 0.5627240 1.328293 0.4236445
PARP1 KO exp2 exp2 PARP1 KO olaparib_3000nM 1832 3.477121 2484.00 0.7375201 1.151065 0.6407287
ALC1 KO #1 exp2 exp2 ALC1 KO #1 olaparib_3000nM 636 3.477121 1503.00 0.4231537 1.816617 0.2329350
ALC1 KO #2 exp2 exp2 ALC1 KO #2 olaparib_3000nM 664 3.477121 1721.00 0.3858222 1.750702 0.2203814
ALC1 KO #3 exp2 exp2 ALC1 KO #3 olaparib_3000nM 832 3.477121 1712.50 0.4858394 1.689658 0.2875372
ALC1 KO PARP1 KO #1 exp2 exp2 ALC1 KO PARP1 KO #1 olaparib_3000nM 2864 3.477121 3636.00 0.7876788 1.225043 0.6429802
ALC1 KO PARP1 KO #2 exp2 exp2 ALC1 KO PARP1 KO #2 olaparib_3000nM 1416 3.477121 2128.00 0.6654135 1.234693 0.5389305
WT exp3 exp3 WT olaparib_3000nM 1424 3.477121 2274.00 0.6262093 1.328293 0.4714391
PARP1 KO exp3 exp3 PARP1 KO olaparib_3000nM 1219 3.477121 1595.00 0.7642633 1.151065 0.6639621
ALC1 KO #1 exp3 exp3 ALC1 KO #1 olaparib_3000nM 1078 3.477121 2329.50 0.4627602 1.816617 0.2547374
ALC1 KO #2 exp3 exp3 ALC1 KO #2 olaparib_3000nM 1352 3.477121 2423.00 0.5579860 1.750702 0.3187212
ALC1 KO #3 exp3 exp3 ALC1 KO #3 olaparib_3000nM 1344 3.477121 2406.00 0.5586035 1.689658 0.3306016
ALC1 KO PARP1 KO #1 exp3 exp3 ALC1 KO PARP1 KO #1 olaparib_3000nM 3072 3.477121 3423.00 0.8974584 1.225043 0.7325930
ALC1 KO PARP1 KO #2 exp3 exp3 ALC1 KO PARP1 KO #2 olaparib_3000nM 620 3.477121 879.75 0.7047457 1.234693 0.5707863
WT exp4 exp4 WT olaparib_3000nM 1742 3.477121 2579.50 0.6753247 1.328293 0.5084154
PARP1 KO exp4 exp4 PARP1 KO olaparib_3000nM 1058 3.477121 1427.75 0.7410261 1.151065 0.6437745
ALC1 KO #1 exp4 exp4 ALC1 KO #1 olaparib_3000nM 874 3.477121 1889.50 0.4625562 1.816617 0.2546251
ALC1 KO #2 exp4 exp4 ALC1 KO #2 olaparib_3000nM 1040 3.477121 2034.00 0.5113078 1.750702 0.2920587
ALC1 KO #3 exp4 exp4 ALC1 KO #3 olaparib_3000nM 822 3.477121 1822.50 0.4510288 1.689658 0.2669350
ALC1 KO PARP1 KO #1 exp4 exp4 ALC1 KO PARP1 KO #1 olaparib_3000nM 2328 3.477121 2918.00 0.7978067 1.225043 0.6512476
ALC1 KO PARP1 KO #2 exp4 exp4 ALC1 KO PARP1 KO #2 olaparib_3000nM 906 3.477121 1483.75 0.6106150 1.234693 0.4945482

Plot Data

library(ggplot2)

# raw data
ggplot(dataset, aes(x=Olaparib, y=Counts)) + 
        theme_bw() +
        theme(panel.grid=element_blank(), text = element_text(size=14)) +
        geom_smooth(method=lm, formula = y ~ poly(x, 2), se=FALSE, colour="#666666") +
        geom_point(aes(colour=Treatment, shape=Experiment), size=2) +        
        facet_grid(. ~ genotype) +
        xlab(label = "Olaparib (log10 nM)") +
        scale_shape_manual(values=15:19) +
        scale_color_manual(values=c("#999999","#0072B2","#CC79A7","#009E73"))

# NormCounts Linear
ggplot(dataset[dataset$genotype %in% levels(dataset$genotype)[c(1,2,6,7)],], aes(x=Olaparib, y=NormCounts)) + 
        theme_bw() +
        theme(panel.grid=element_blank(), text = element_text(size=14)) +
        geom_point(colour="#333333") +
        geom_smooth(method=lm, formula = y ~ x, se=TRUE, colour="#666666") +
        facet_grid(. ~ genotype) +
        xlab(label = "Olaparib (log10 nM)")

# NormCounts Quadratic
ggplot(dataset[dataset$genotype %in% levels(dataset$genotype)[c(1,2,6,7)],], aes(x=Olaparib, y=NormCounts)) + 
        theme_bw() +
        theme(panel.grid=element_blank(), text = element_text(size=14)) +
        geom_point(colour="#333333") +
        geom_smooth(method=lm, formula = y ~ poly(x, 2), se=TRUE, colour="#666666") +
        facet_grid(. ~ genotype) +
        xlab(label = "Olaparib (log10 nM)") 

# NormCounts Cubic
ggplot(dataset[dataset$genotype %in% levels(dataset$genotype)[c(1,2,6,7)],], aes(x=Olaparib, y=NormCounts)) + 
        theme_bw() +
        theme(panel.grid=element_blank(), text = element_text(size=14)) +
        geom_point(colour="#333333") +
        geom_smooth(method=lm, formula = y ~ poly(x, 3), se=TRUE, colour="#666666") +
        facet_grid(. ~ genotype) +
        xlab(label = "Olaparib (log10 nM)") 

# NormCounts2 Linear
ggplot(dataset[dataset$genotype %in% levels(dataset$genotype)[c(1,2,6,7)],], aes(x=Olaparib, y=NormCounts2)) + 
        theme_bw() +
        theme(panel.grid=element_blank(), text = element_text(size=14)) +
        geom_point(colour="#333333") +
        geom_smooth(method=lm, formula = y ~ x, se=TRUE, colour="#666666") +
        facet_grid(. ~ genotype) +
        xlab(label = "Olaparib (log10 nM)")

# NormCounts2 Quadratic
ggplot(dataset[dataset$genotype %in% levels(dataset$genotype)[c(1,2,6,7)],], aes(x=Olaparib, y=NormCounts2)) + 
        theme_bw() +
        theme(panel.grid=element_blank(), text = element_text(size=14)) +
        geom_point(colour="#333333") +
        geom_smooth(method=lm, formula = y ~ poly(x, 2), se=TRUE, colour="#666666") +
        facet_grid(. ~ genotype) +
        xlab(label = "Olaparib (log10 nM)") 

# NormCounts2 Cubic
ggplot(dataset[dataset$genotype %in% levels(dataset$genotype)[c(1,2,6,7)],], aes(x=Olaparib, y=NormCounts2)) + 
        theme_bw() +
        theme(panel.grid=element_blank(), text = element_text(size=14)) +
        geom_point(colour="#333333") +
        geom_smooth(method=lm, formula = y ~ poly(x, 3), se=TRUE, colour="#666666") +
        facet_grid(. ~ genotype) +
        xlab(label = "Olaparib (log10 nM)") 

library(Cairo)

cairo_pdf("Figure1D_v1.pdf", width = 10, height = 4, family = "Arial")

datasubset <- dataset[dataset$genotype %in% levels(dataset$genotype)[c(1,2,3,7)],]
datasubset$genotype <- relevel(datasubset$genotype, ref = "WT")

ggplot(datasubset, aes(x=Olaparib, y=NormCounts2)) + 
        theme_bw() +
        theme(panel.grid.major=element_blank(), panel.grid.minor=element_blank(), 
              axis.line = element_line(colour = "black"), text = element_text(size=14),
              panel.border = element_blank(), panel.background = element_blank()) +
        geom_point(aes(colour = genotype)) +
        geom_smooth(method=lm, formula = y ~ poly(x, 2), se=TRUE, aes(colour = genotype), fill='#DDDDDD', size=0.5) +
        facet_grid(. ~ genotype) +
        xlab(label = "Olaparib (log10 nM)") +
        ylab(label = "Normalized Counts") +
        scale_color_manual(values=c('#000000','#800000','#000080','#808080'))

dev.off()
## quartz_off_screen 
##                 2
cairo_pdf("Figure1D_v2.pdf", width = 6, height = 4, family = "Arial")

ggplot(datasubset, aes(x=Olaparib, y=NormCounts2)) + 
        theme_bw() +
        theme(panel.grid.major=element_blank(), panel.grid.minor=element_blank(), 
              axis.line = element_line(colour = "black"), text = element_text(size=14),
              panel.border = element_blank(), panel.background = element_blank()) +
        geom_point(aes(colour = genotype), size=1.75) +
        geom_smooth(method=lm, formula = y ~ poly(x,2), se=TRUE, 
                    aes(group = genotype, colour = genotype), fill='#DDDDDD', size=0.5) +
        #facet_grid(. ~ genotype) +
        xlab(label = "Olaparib (log10 nM)") +
        ylab(label = "Normalized Counts") +
        scale_color_manual(values=c('#000000','#800000','#000080','#808080'))

dev.off()
## quartz_off_screen 
##                 2
cairo_pdf("FigureS1D.pdf", width = 6, height = 4, family = "Arial")

datasubset <- dataset[dataset$genotype %in% levels(dataset$genotype)[c(1,2,4,5,6)],]
datasubset$genotype <- relevel(datasubset$genotype, ref = "WT")

ggplot(datasubset, aes(x=Olaparib, y=NormCounts2)) + 
        theme_bw() +
        theme(panel.grid.major=element_blank(), panel.grid.minor=element_blank(), 
              axis.line = element_line(colour = "black"), text = element_text(size=14),
              panel.border = element_blank(), panel.background = element_blank()) +
        geom_point(aes(colour = genotype), size=1.75) +
        geom_smooth(method=lm, formula = y ~ poly(x,2), se=TRUE, 
                    aes(group = genotype, colour = genotype), fill='#DDDDDD', size=0.5) +
        #facet_grid(. ~ genotype) +
        xlab(label = "Olaparib (log10 nM)") +
        ylab(label = "Normalized Counts") +
        scale_color_manual(values=c('#000000','#800000','#000080','#008080','#808080'))

dev.off()
## quartz_off_screen 
##                 2

Models

library(DHARMa)
library(lme4)
library(lmerTest)
library(bbmle)

Linear formula

fit1 <- lm(Counts ~ Experiment + Olaparib*genotype, data = dataset)
print(summary(fit1))
## 
## Call:
## lm(formula = Counts ~ Experiment + Olaparib * genotype, data = dataset)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -1292.19  -350.47    38.16   344.43  1059.70 
## 
## Coefficients:
##                                      Estimate Std. Error t value Pr(>|t|)    
## (Intercept)                          3086.986    231.702  13.323  < 2e-16 ***
## Experimentexp2                         88.214    132.029   0.668  0.50566    
## Experimentexp3                         75.893    132.029   0.575  0.56677    
## Experimentexp4                        -92.000    132.029  -0.697  0.48762    
## Olaparib                             -461.295     96.131  -4.799 5.93e-06 ***
## genotypePARP1 KO                     -703.721    307.079  -2.292  0.02413 *  
## genotypeALC1 KO #1                   -162.311    307.079  -0.529  0.59834    
## genotypeALC1 KO #2                    390.719    307.079   1.272  0.20635    
## genotypeALC1 KO #3                     -6.139    307.079  -0.020  0.98409    
## genotypeALC1 KO PARP1 KO #1           766.569    307.079   2.496  0.01427 *  
## genotypeALC1 KO PARP1 KO #2          -814.690    307.079  -2.653  0.00935 ** 
## Olaparib:genotypePARP1 KO             237.996    135.949   1.751  0.08324 .  
## Olaparib:genotypeALC1 KO #1          -188.358    135.949  -1.386  0.16914    
## Olaparib:genotypeALC1 KO #2          -282.536    135.949  -2.078  0.04038 *  
## Olaparib:genotypeALC1 KO #3          -174.456    135.949  -1.283  0.20253    
## Olaparib:genotypeALC1 KO PARP1 KO #1   70.240    135.949   0.517  0.60659    
## Olaparib:genotypeALC1 KO PARP1 KO #2  185.734    135.949   1.366  0.17510    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 494 on 95 degrees of freedom
## Multiple R-squared:  0.757,  Adjusted R-squared:  0.7161 
## F-statistic:  18.5 on 16 and 95 DF,  p-value: < 2.2e-16
cat("AIC: ", AIC(fit1))
## AIC:  1724.775
simres <- simulateResiduals(fittedModel = fit1)
plot(simres)

fit2 <- lm(NormCounts ~ Olaparib*genotype, data = dataset)
print(summary(fit2))
## 
## Call:
## lm(formula = NormCounts ~ Olaparib * genotype, data = dataset)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -0.31437 -0.06435  0.00226  0.07579  0.32955 
## 
## Coefficients:
##                                      Estimate Std. Error t value Pr(>|t|)    
## (Intercept)                           1.38641    0.05086  27.257  < 2e-16 ***
## Olaparib                             -0.20799    0.02252  -9.236 5.50e-15 ***
## genotypePARP1 KO                     -0.18322    0.07193  -2.547 0.012420 *  
## genotypeALC1 KO #1                    0.32837    0.07193   4.565 1.45e-05 ***
## genotypeALC1 KO #2                    0.28288    0.07193   3.933 0.000157 ***
## genotypeALC1 KO #3                    0.24407    0.07193   3.393 0.000998 ***
## genotypeALC1 KO PARP1 KO #1          -0.14969    0.07193  -2.081 0.040041 *  
## genotypeALC1 KO PARP1 KO #2          -0.10276    0.07193  -1.429 0.156307    
## Olaparib:genotypePARP1 KO             0.09862    0.03185   3.097 0.002552 ** 
## Olaparib:genotypeALC1 KO #1          -0.17675    0.03185  -5.550 2.44e-07 ***
## Olaparib:genotypeALC1 KO #2          -0.15226    0.03185  -4.781 6.14e-06 ***
## Olaparib:genotypeALC1 KO #3          -0.13138    0.03185  -4.125 7.77e-05 ***
## Olaparib:genotypeALC1 KO PARP1 KO #1  0.08057    0.03185   2.530 0.012996 *  
## Olaparib:genotypeALC1 KO PARP1 KO #2  0.05531    0.03185   1.737 0.085552 .  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.1157 on 98 degrees of freedom
## Multiple R-squared:  0.9075, Adjusted R-squared:  0.8953 
## F-statistic: 73.99 on 13 and 98 DF,  p-value: < 2.2e-16
cat("AIC: ", AIC(fit2))
## AIC:  -150.187
simres <- simulateResiduals(fittedModel = fit2)
plot(simres)

fit3 <- lm(NormCounts2 ~ Olaparib*genotype, data = dataset)
print(summary(fit3))
## 
## Call:
## lm(formula = NormCounts2 ~ Olaparib * genotype, data = dataset)
## 
## Residuals:
##       Min        1Q    Median        3Q       Max 
## -0.173053 -0.051127  0.001775  0.049137  0.188241 
## 
## Coefficients:
##                                       Estimate Std. Error t value Pr(>|t|)    
## (Intercept)                           1.043751   0.033393  31.257  < 2e-16 ***
## Olaparib                             -0.156582   0.014784 -10.592  < 2e-16 ***
## genotypePARP1 KO                      0.001535   0.047225   0.032  0.97414    
## genotypeALC1 KO #1                   -0.099811   0.047225  -2.114  0.03709 *  
## genotypeALC1 KO #2                   -0.090257   0.047225  -1.911  0.05890 .  
## genotypeALC1 KO #3                   -0.078773   0.047225  -1.668  0.09850 .  
## genotypeALC1 KO PARP1 KO #1          -0.034224   0.047225  -0.725  0.47036    
## genotypeALC1 KO PARP1 KO #2          -0.004103   0.047225  -0.087  0.93094    
## Olaparib:genotypePARP1 KO             0.061566   0.020907   2.945  0.00404 ** 
## Olaparib:genotypeALC1 KO #1          -0.055204   0.020907  -2.640  0.00964 ** 
## Olaparib:genotypeALC1 KO #2          -0.049192   0.020907  -2.353  0.02063 *  
## Olaparib:genotypeALC1 KO #3          -0.044265   0.020907  -2.117  0.03677 *  
## Olaparib:genotypeALC1 KO PARP1 KO #1  0.052575   0.020907   2.515  0.01354 *  
## Olaparib:genotypeALC1 KO PARP1 KO #2  0.032928   0.020907   1.575  0.11849    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.07597 on 98 degrees of freedom
## Multiple R-squared:  0.9217, Adjusted R-squared:  0.9113 
## F-statistic:  88.7 on 13 and 98 DF,  p-value: < 2.2e-16
cat("AIC: ", AIC(fit3))
## AIC:  -244.4496
simres <- simulateResiduals(fittedModel = fit3)
plot(simres)

fit4 <- lmer(Counts ~ Olaparib*genotype + (1|UID), data = dataset)
print(summary(fit4))
## Linear mixed model fit by REML. t-tests use Satterthwaite's method [
## lmerModLmerTest]
## Formula: Counts ~ Olaparib * genotype + (1 | UID)
##    Data: dataset
## 
## REML criterion at convergence: 1452.3
## 
## Scaled residuals: 
##     Min      1Q  Median      3Q     Max 
## -2.0250 -0.4734  0.0399  0.5726  1.5679 
## 
## Random effects:
##  Groups   Name        Variance Std.Dev.
##  UID      (Intercept) 216177   464.9   
##  Residual              57192   239.1   
## Number of obs: 112, groups:  UID, 28
## 
## Fixed effects:
##                                      Estimate Std. Error       df t value
## (Intercept)                          3105.013    255.135   26.680  12.170
## Olaparib                             -461.295     46.537   77.000  -9.912
## genotypePARP1 KO                     -703.721    360.815   26.680  -1.950
## genotypeALC1 KO #1                   -162.311    360.815   26.680  -0.450
## genotypeALC1 KO #2                    390.719    360.815   26.680   1.083
## genotypeALC1 KO #3                     -6.139    360.815   26.680  -0.017
## genotypeALC1 KO PARP1 KO #1           766.569    360.815   26.680   2.125
## genotypeALC1 KO PARP1 KO #2          -814.690    360.815   26.680  -2.258
## Olaparib:genotypePARP1 KO             237.996     65.813   77.000   3.616
## Olaparib:genotypeALC1 KO #1          -188.358     65.813   77.000  -2.862
## Olaparib:genotypeALC1 KO #2          -282.536     65.813   77.000  -4.293
## Olaparib:genotypeALC1 KO #3          -174.456     65.813   77.000  -2.651
## Olaparib:genotypeALC1 KO PARP1 KO #1   70.240     65.813   77.000   1.067
## Olaparib:genotypeALC1 KO PARP1 KO #2  185.734     65.813   77.000   2.822
##                                      Pr(>|t|)    
## (Intercept)                          2.13e-12 ***
## Olaparib                             2.12e-15 ***
## genotypePARP1 KO                     0.061712 .  
## genotypeALC1 KO #1                   0.656457    
## genotypeALC1 KO #2                   0.288552    
## genotypeALC1 KO #3                   0.986552    
## genotypeALC1 KO PARP1 KO #1          0.043042 *  
## genotypeALC1 KO PARP1 KO #2          0.032346 *  
## Olaparib:genotypePARP1 KO            0.000532 ***
## Olaparib:genotypeALC1 KO #1          0.005419 ** 
## Olaparib:genotypeALC1 KO #2          5.08e-05 ***
## Olaparib:genotypeALC1 KO #3          0.009744 ** 
## Olaparib:genotypeALC1 KO PARP1 KO #1 0.289192    
## Olaparib:genotypeALC1 KO PARP1 KO #2 0.006067 ** 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
cat("AIC: ", AIC(fit4))
## AIC:  1484.326
simres <- simulateResiduals(fittedModel = fit4)
plot(simres)

Quadratic formula

fit5 <- lm(Counts ~ Experiment + poly(Olaparib, 2)*genotype, data = dataset)
print(summary(fit5))
## 
## Call:
## lm(formula = Counts ~ Experiment + poly(Olaparib, 2) * genotype, 
##     data = dataset)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -1221.99  -313.25    -4.75   325.69  1129.90 
## 
## Coefficients:
##                                                Estimate Std. Error t value
## (Intercept)                                     2229.97     148.27  15.040
## Experimentexp2                                    88.21     132.61   0.665
## Experimentexp3                                    75.89     132.61   0.572
## Experimentexp4                                   -92.00     132.61  -0.694
## poly(Olaparib, 2)1                             -6271.89    1312.81  -4.777
## poly(Olaparib, 2)2                             -1344.84    1312.81  -1.024
## genotypePARP1 KO                                -261.56     175.43  -1.491
## genotypeALC1 KO #1                              -512.25     175.43  -2.920
## genotypeALC1 KO #2                              -134.19     175.43  -0.765
## genotypeALC1 KO #3                              -330.25     175.43  -1.883
## genotypeALC1 KO PARP1 KO #1                      897.06     175.43   5.113
## genotypeALC1 KO PARP1 KO #2                     -469.62     175.43  -2.677
## poly(Olaparib, 2)1:genotypePARP1 KO             3235.85    1856.59   1.743
## poly(Olaparib, 2)2:genotypePARP1 KO              -95.58    1856.59  -0.051
## poly(Olaparib, 2)1:genotypeALC1 KO #1          -2560.97    1856.59  -1.379
## poly(Olaparib, 2)2:genotypeALC1 KO #1           2809.89    1856.59   1.513
## poly(Olaparib, 2)1:genotypeALC1 KO #2          -3841.44    1856.59  -2.069
## poly(Olaparib, 2)2:genotypeALC1 KO #2           3027.78    1856.59   1.631
## poly(Olaparib, 2)1:genotypeALC1 KO #3          -2371.95    1856.59  -1.278
## poly(Olaparib, 2)2:genotypeALC1 KO #3           2323.84    1856.59   1.252
## poly(Olaparib, 2)1:genotypeALC1 KO PARP1 KO #1   955.00    1856.59   0.514
## poly(Olaparib, 2)2:genotypeALC1 KO PARP1 KO #1   977.10    1856.59   0.526
## poly(Olaparib, 2)1:genotypeALC1 KO PARP1 KO #2  2525.30    1856.59   1.360
## poly(Olaparib, 2)2:genotypeALC1 KO PARP1 KO #2   528.20    1856.59   0.285
##                                                Pr(>|t|)    
## (Intercept)                                     < 2e-16 ***
## Experimentexp2                                  0.50766    
## Experimentexp3                                  0.56859    
## Experimentexp4                                  0.48967    
## poly(Olaparib, 2)1                             7.05e-06 ***
## poly(Olaparib, 2)2                              0.30845    
## genotypePARP1 KO                                0.13955    
## genotypeALC1 KO #1                              0.00445 ** 
## genotypeALC1 KO #2                              0.44638    
## genotypeALC1 KO #3                              0.06307 .  
## genotypeALC1 KO PARP1 KO #1                    1.83e-06 ***
## genotypeALC1 KO PARP1 KO #2                     0.00886 ** 
## poly(Olaparib, 2)1:genotypePARP1 KO             0.08484 .  
## poly(Olaparib, 2)2:genotypePARP1 KO             0.95906    
## poly(Olaparib, 2)1:genotypeALC1 KO #1           0.17127    
## poly(Olaparib, 2)2:genotypeALC1 KO #1           0.13374    
## poly(Olaparib, 2)1:genotypeALC1 KO #2           0.04147 *  
## poly(Olaparib, 2)2:genotypeALC1 KO #2           0.10650    
## poly(Olaparib, 2)1:genotypeALC1 KO #3           0.20476    
## poly(Olaparib, 2)2:genotypeALC1 KO #3           0.21401    
## poly(Olaparib, 2)1:genotypeALC1 KO PARP1 KO #1  0.60828    
## poly(Olaparib, 2)2:genotypeALC1 KO PARP1 KO #1  0.60001    
## poly(Olaparib, 2)1:genotypeALC1 KO PARP1 KO #2  0.17725    
## poly(Olaparib, 2)2:genotypeALC1 KO PARP1 KO #2  0.77670    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 496.2 on 88 degrees of freedom
## Multiple R-squared:  0.7729, Adjusted R-squared:  0.7135 
## F-statistic: 13.02 on 23 and 88 DF,  p-value: < 2.2e-16
cat("AIC: ", AIC(fit5))
## AIC:  1731.193
simres <- simulateResiduals(fittedModel = fit5)
plot(simres)

fit6 <- lm(NormCounts ~ poly(Olaparib, 2)*genotype, data = dataset)
print(summary(fit6))
## 
## Call:
## lm(formula = NormCounts ~ poly(Olaparib, 2) * genotype, data = dataset)
## 
## Residuals:
##       Min        1Q    Median        3Q       Max 
## -0.224412 -0.037884 -0.002421  0.044466  0.256725 
## 
## Coefficients:
##                                                  Estimate Std. Error t value
## (Intercept)                                     1.000e+00  2.395e-02  41.754
## poly(Olaparib, 2)1                             -2.828e+00  2.535e-01 -11.157
## poly(Olaparib, 2)2                             -6.107e-01  2.535e-01  -2.409
## genotypePARP1 KO                                3.457e-16  3.387e-02   0.000
## genotypeALC1 KO #1                              3.350e-16  3.387e-02   0.000
## genotypeALC1 KO #2                              1.906e-16  3.387e-02   0.000
## genotypeALC1 KO #3                              1.399e-16  3.387e-02   0.000
## genotypeALC1 KO PARP1 KO #1                     2.704e-16  3.387e-02   0.000
## genotypeALC1 KO PARP1 KO #2                     2.969e-16  3.387e-02   0.000
## poly(Olaparib, 2)1:genotypePARP1 KO             1.341e+00  3.585e-01   3.741
## poly(Olaparib, 2)2:genotypePARP1 KO            -1.201e-01  3.585e-01  -0.335
## poly(Olaparib, 2)1:genotypeALC1 KO #1          -2.403e+00  3.585e-01  -6.704
## poly(Olaparib, 2)2:genotypeALC1 KO #1           1.622e+00  3.585e-01   4.525
## poly(Olaparib, 2)1:genotypeALC1 KO #2          -2.070e+00  3.585e-01  -5.775
## poly(Olaparib, 2)2:genotypeALC1 KO #2           1.458e+00  3.585e-01   4.067
## poly(Olaparib, 2)1:genotypeALC1 KO #3          -1.786e+00  3.585e-01  -4.983
## poly(Olaparib, 2)2:genotypeALC1 KO #3           1.196e+00  3.585e-01   3.336
## poly(Olaparib, 2)1:genotypeALC1 KO PARP1 KO #1  1.096e+00  3.585e-01   3.056
## poly(Olaparib, 2)2:genotypeALC1 KO PARP1 KO #1  4.771e-01  3.585e-01   1.331
## poly(Olaparib, 2)1:genotypeALC1 KO PARP1 KO #2  7.520e-01  3.585e-01   2.098
## poly(Olaparib, 2)2:genotypeALC1 KO PARP1 KO #2  3.420e-02  3.585e-01   0.095
##                                                Pr(>|t|)    
## (Intercept)                                     < 2e-16 ***
## poly(Olaparib, 2)1                              < 2e-16 ***
## poly(Olaparib, 2)2                             0.017990 *  
## genotypePARP1 KO                               1.000000    
## genotypeALC1 KO #1                             1.000000    
## genotypeALC1 KO #2                             1.000000    
## genotypeALC1 KO #3                             1.000000    
## genotypeALC1 KO PARP1 KO #1                    1.000000    
## genotypeALC1 KO PARP1 KO #2                    1.000000    
## poly(Olaparib, 2)1:genotypePARP1 KO            0.000321 ***
## poly(Olaparib, 2)2:genotypePARP1 KO            0.738439    
## poly(Olaparib, 2)1:genotypeALC1 KO #1          1.66e-09 ***
## poly(Olaparib, 2)2:genotypeALC1 KO #1          1.82e-05 ***
## poly(Olaparib, 2)1:genotypeALC1 KO #2          1.06e-07 ***
## poly(Olaparib, 2)2:genotypeALC1 KO #2          0.000101 ***
## poly(Olaparib, 2)1:genotypeALC1 KO #3          2.97e-06 ***
## poly(Olaparib, 2)2:genotypeALC1 KO #3          0.001232 ** 
## poly(Olaparib, 2)1:genotypeALC1 KO PARP1 KO #1 0.002942 ** 
## poly(Olaparib, 2)2:genotypeALC1 KO PARP1 KO #1 0.186540    
## poly(Olaparib, 2)1:genotypeALC1 KO PARP1 KO #2 0.038674 *  
## poly(Olaparib, 2)2:genotypeALC1 KO PARP1 KO #2 0.924202    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.0958 on 91 degrees of freedom
## Multiple R-squared:  0.9412, Adjusted R-squared:  0.9282 
## F-statistic: 72.77 on 20 and 91 DF,  p-value: < 2.2e-16
cat("AIC: ", AIC(fit6))
## AIC:  -186.8034
simres <- simulateResiduals(fittedModel = fit6)
plot(simres)

fit7 <- lm(NormCounts2 ~ poly(Olaparib, 2)*genotype, data = dataset)
print(summary(fit7))
## 
## Call:
## lm(formula = NormCounts2 ~ poly(Olaparib, 2) * genotype, data = dataset)
## 
## Residuals:
##       Min        1Q    Median        3Q       Max 
## -0.132815 -0.030932 -0.001158  0.033036  0.146641 
## 
## Coefficients:
##                                                 Estimate Std. Error t value
## (Intercept)                                     0.752846   0.015507  48.547
## poly(Olaparib, 2)1                             -2.128936   0.164116 -12.972
## poly(Olaparib, 2)2                             -0.459768   0.164116  -2.801
## genotypePARP1 KO                                0.115915   0.021931   5.285
## genotypeALC1 KO #1                             -0.202372   0.021931  -9.228
## genotypeALC1 KO #2                             -0.181647   0.021931  -8.283
## genotypeALC1 KO #3                             -0.161010   0.021931  -7.342
## genotypeALC1 KO PARP1 KO #1                     0.063452   0.021931   2.893
## genotypeALC1 KO PARP1 KO #2                     0.057072   0.021931   2.602
## poly(Olaparib, 2)1:genotypePARP1 KO             0.837073   0.232095   3.607
## poly(Olaparib, 2)2:genotypePARP1 KO            -0.175094   0.232095  -0.754
## poly(Olaparib, 2)1:genotypeALC1 KO #1          -0.750574   0.232095  -3.234
## poly(Olaparib, 2)2:genotypeALC1 KO #1           1.016525   0.232095   4.380
## poly(Olaparib, 2)1:genotypeALC1 KO #2          -0.668821   0.232095  -2.882
## poly(Olaparib, 2)2:genotypeALC1 KO #2           0.943698   0.232095   4.066
## poly(Olaparib, 2)1:genotypeALC1 KO #3          -0.601835   0.232095  -2.593
## poly(Olaparib, 2)2:genotypeALC1 KO #3           0.806003   0.232095   3.473
## poly(Olaparib, 2)1:genotypeALC1 KO PARP1 KO #1  0.714823   0.232095   3.080
## poly(Olaparib, 2)2:genotypeALC1 KO PARP1 KO #1  0.350681   0.232095   1.511
## poly(Olaparib, 2)1:genotypeALC1 KO PARP1 KO #2  0.447700   0.232095   1.929
## poly(Olaparib, 2)2:genotypeALC1 KO PARP1 KO #2 -0.007157   0.232095  -0.031
##                                                Pr(>|t|)    
## (Intercept)                                     < 2e-16 ***
## poly(Olaparib, 2)1                              < 2e-16 ***
## poly(Olaparib, 2)2                             0.006214 ** 
## genotypePARP1 KO                               8.54e-07 ***
## genotypeALC1 KO #1                             1.05e-14 ***
## genotypeALC1 KO #2                             9.92e-13 ***
## genotypeALC1 KO #3                             8.63e-11 ***
## genotypeALC1 KO PARP1 KO #1                    0.004771 ** 
## genotypeALC1 KO PARP1 KO #2                    0.010808 *  
## poly(Olaparib, 2)1:genotypePARP1 KO            0.000506 ***
## poly(Olaparib, 2)2:genotypePARP1 KO            0.452552    
## poly(Olaparib, 2)1:genotypeALC1 KO #1          0.001702 ** 
## poly(Olaparib, 2)2:genotypeALC1 KO #1          3.17e-05 ***
## poly(Olaparib, 2)1:genotypeALC1 KO #2          0.004934 ** 
## poly(Olaparib, 2)2:genotypeALC1 KO #2          0.000101 ***
## poly(Olaparib, 2)1:genotypeALC1 KO #3          0.011084 *  
## poly(Olaparib, 2)2:genotypeALC1 KO #3          0.000790 ***
## poly(Olaparib, 2)1:genotypeALC1 KO PARP1 KO #1 0.002738 ** 
## poly(Olaparib, 2)2:genotypeALC1 KO PARP1 KO #1 0.134268    
## poly(Olaparib, 2)1:genotypeALC1 KO PARP1 KO #2 0.056853 .  
## poly(Olaparib, 2)2:genotypeALC1 KO PARP1 KO #2 0.975469    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.06203 on 91 degrees of freedom
## Multiple R-squared:  0.9515, Adjusted R-squared:  0.9409 
## F-statistic: 89.28 on 20 and 91 DF,  p-value: < 2.2e-16
cat("AIC: ", AIC(fit7))
## AIC:  -284.1646
simres <- simulateResiduals(fittedModel = fit7)
plot(simres)

fit8 <- lmer(Counts ~ poly(Olaparib, 2)*genotype + (1|UID), data = dataset)
print(summary(fit8))
## Linear mixed model fit by REML. t-tests use Satterthwaite's method [
## lmerModLmerTest]
## Formula: Counts ~ poly(Olaparib, 2) * genotype + (1 | UID)
##    Data: dataset
## 
## REML criterion at convergence: 1282.7
## 
## Scaled residuals: 
##      Min       1Q   Median       3Q      Max 
## -1.70753 -0.56360  0.09369  0.52591  1.63379 
## 
## Random effects:
##  Groups   Name        Variance Std.Dev.
##  UID      (Intercept) 220167   469.2   
##  Residual              41233   203.1   
## Number of obs: 112, groups:  UID, 28
## 
## Fixed effects:
##                                                Estimate Std. Error       df
## (Intercept)                                     2248.00     240.04    21.00
## poly(Olaparib, 2)1                             -6271.89     537.24    70.00
## poly(Olaparib, 2)2                             -1344.84     537.24    70.00
## genotypePARP1 KO                                -261.56     339.47    21.00
## genotypeALC1 KO #1                              -512.25     339.47    21.00
## genotypeALC1 KO #2                              -134.19     339.47    21.00
## genotypeALC1 KO #3                              -330.25     339.47    21.00
## genotypeALC1 KO PARP1 KO #1                      897.06     339.47    21.00
## genotypeALC1 KO PARP1 KO #2                     -469.63     339.47    21.00
## poly(Olaparib, 2)1:genotypePARP1 KO             3235.85     759.78    70.00
## poly(Olaparib, 2)2:genotypePARP1 KO              -95.58     759.78    70.00
## poly(Olaparib, 2)1:genotypeALC1 KO #1          -2560.97     759.78    70.00
## poly(Olaparib, 2)2:genotypeALC1 KO #1           2809.89     759.78    70.00
## poly(Olaparib, 2)1:genotypeALC1 KO #2          -3841.44     759.78    70.00
## poly(Olaparib, 2)2:genotypeALC1 KO #2           3027.78     759.78    70.00
## poly(Olaparib, 2)1:genotypeALC1 KO #3          -2371.95     759.78    70.00
## poly(Olaparib, 2)2:genotypeALC1 KO #3           2323.84     759.78    70.00
## poly(Olaparib, 2)1:genotypeALC1 KO PARP1 KO #1   955.00     759.78    70.00
## poly(Olaparib, 2)2:genotypeALC1 KO PARP1 KO #1   977.10     759.78    70.00
## poly(Olaparib, 2)1:genotypeALC1 KO PARP1 KO #2  2525.30     759.78    70.00
## poly(Olaparib, 2)2:genotypeALC1 KO PARP1 KO #2   528.20     759.78    70.00
##                                                t value Pr(>|t|)    
## (Intercept)                                      9.365 6.03e-09 ***
## poly(Olaparib, 2)1                             -11.674  < 2e-16 ***
## poly(Olaparib, 2)2                              -2.503 0.014643 *  
## genotypePARP1 KO                                -0.771 0.449579    
## genotypeALC1 KO #1                              -1.509 0.146202    
## genotypeALC1 KO #2                              -0.395 0.696616    
## genotypeALC1 KO #3                              -0.973 0.341701    
## genotypeALC1 KO PARP1 KO #1                      2.643 0.015224 *  
## genotypeALC1 KO PARP1 KO #2                     -1.383 0.181067    
## poly(Olaparib, 2)1:genotypePARP1 KO              4.259 6.28e-05 ***
## poly(Olaparib, 2)2:genotypePARP1 KO             -0.126 0.900254    
## poly(Olaparib, 2)1:genotypeALC1 KO #1           -3.371 0.001223 ** 
## poly(Olaparib, 2)2:genotypeALC1 KO #1            3.698 0.000428 ***
## poly(Olaparib, 2)1:genotypeALC1 KO #2           -5.056 3.29e-06 ***
## poly(Olaparib, 2)2:genotypeALC1 KO #2            3.985 0.000163 ***
## poly(Olaparib, 2)1:genotypeALC1 KO #3           -3.122 0.002612 ** 
## poly(Olaparib, 2)2:genotypeALC1 KO #3            3.059 0.003150 ** 
## poly(Olaparib, 2)1:genotypeALC1 KO PARP1 KO #1   1.257 0.212952    
## poly(Olaparib, 2)2:genotypeALC1 KO PARP1 KO #1   1.286 0.202669    
## poly(Olaparib, 2)1:genotypeALC1 KO PARP1 KO #2   3.324 0.001416 ** 
## poly(Olaparib, 2)2:genotypeALC1 KO PARP1 KO #2   0.695 0.489228    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
cat("AIC: ", AIC(fit8))
## AIC:  1328.72
simres <- simulateResiduals(fittedModel = fit8)
plot(simres)

Cubic formula

fit9 <- lm(Counts ~ Experiment + poly(Olaparib, 3)*genotype, data = dataset)
print(summary(fit9))
## 
## Call:
## lm(formula = Counts ~ Experiment + poly(Olaparib, 3) * genotype, 
##     data = dataset)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -1218.87  -309.44    -8.67   323.93  1133.03 
## 
## Coefficients:
##                                                Estimate Std. Error t value
## (Intercept)                                     2229.97     153.22  14.554
## Experimentexp2                                    88.21     137.04   0.644
## Experimentexp3                                    75.89     137.04   0.554
## Experimentexp4                                   -92.00     137.04  -0.671
## poly(Olaparib, 3)1                             -6271.89    1356.64  -4.623
## poly(Olaparib, 3)2                             -1344.84    1356.64  -0.991
## poly(Olaparib, 3)3                               367.99    1356.64   0.271
## genotypePARP1 KO                                -261.56     181.29  -1.443
## genotypeALC1 KO #1                              -512.25     181.29  -2.826
## genotypeALC1 KO #2                              -134.19     181.29  -0.740
## genotypeALC1 KO #3                              -330.25     181.29  -1.822
## genotypeALC1 KO PARP1 KO #1                      897.06     181.29   4.948
## genotypeALC1 KO PARP1 KO #2                     -469.62     181.29  -2.590
## poly(Olaparib, 3)1:genotypePARP1 KO             3235.85    1918.58   1.687
## poly(Olaparib, 3)2:genotypePARP1 KO              -95.58    1918.58  -0.050
## poly(Olaparib, 3)3:genotypePARP1 KO            -1186.25    1918.58  -0.618
## poly(Olaparib, 3)1:genotypeALC1 KO #1          -2560.97    1918.58  -1.335
## poly(Olaparib, 3)2:genotypeALC1 KO #1           2809.89    1918.58   1.465
## poly(Olaparib, 3)3:genotypeALC1 KO #1          -1272.78    1918.58  -0.663
## poly(Olaparib, 3)1:genotypeALC1 KO #2          -3841.44    1918.58  -2.002
## poly(Olaparib, 3)2:genotypeALC1 KO #2           3027.78    1918.58   1.578
## poly(Olaparib, 3)3:genotypeALC1 KO #2          -1095.97    1918.58  -0.571
## poly(Olaparib, 3)1:genotypeALC1 KO #3          -2371.95    1918.58  -1.236
## poly(Olaparib, 3)2:genotypeALC1 KO #3           2323.84    1918.58   1.211
## poly(Olaparib, 3)3:genotypeALC1 KO #3           -998.31    1918.58  -0.520
## poly(Olaparib, 3)1:genotypeALC1 KO PARP1 KO #1   955.00    1918.58   0.498
## poly(Olaparib, 3)2:genotypeALC1 KO PARP1 KO #1   977.10    1918.58   0.509
## poly(Olaparib, 3)3:genotypeALC1 KO PARP1 KO #1  -220.56    1918.58  -0.115
## poly(Olaparib, 3)1:genotypeALC1 KO PARP1 KO #2  2525.30    1918.58   1.316
## poly(Olaparib, 3)2:genotypeALC1 KO PARP1 KO #2   528.20    1918.58   0.275
## poly(Olaparib, 3)3:genotypeALC1 KO PARP1 KO #2  -252.01    1918.58  -0.131
##                                                Pr(>|t|)    
## (Intercept)                                     < 2e-16 ***
## Experimentexp2                                  0.52159    
## Experimentexp3                                  0.58125    
## Experimentexp4                                  0.50392    
## poly(Olaparib, 3)1                             1.41e-05 ***
## poly(Olaparib, 3)2                              0.32449    
## poly(Olaparib, 3)3                              0.78689    
## genotypePARP1 KO                                0.15294    
## genotypeALC1 KO #1                              0.00594 ** 
## genotypeALC1 KO #2                              0.46133    
## genotypeALC1 KO #3                              0.07220 .  
## genotypeALC1 KO PARP1 KO #1                    4.00e-06 ***
## genotypeALC1 KO PARP1 KO #2                     0.01136 *  
## poly(Olaparib, 3)1:genotypePARP1 KO             0.09553 .  
## poly(Olaparib, 3)2:genotypePARP1 KO             0.96039    
## poly(Olaparib, 3)3:genotypePARP1 KO             0.53812    
## poly(Olaparib, 3)1:genotypeALC1 KO #1           0.18567    
## poly(Olaparib, 3)2:genotypeALC1 KO #1           0.14691    
## poly(Olaparib, 3)3:genotypeALC1 KO #1           0.50896    
## poly(Olaparib, 3)1:genotypeALC1 KO #2           0.04861 *  
## poly(Olaparib, 3)2:genotypeALC1 KO #2           0.11843    
## poly(Olaparib, 3)3:genotypeALC1 KO #2           0.56942    
## poly(Olaparib, 3)1:genotypeALC1 KO #3           0.21992    
## poly(Olaparib, 3)2:genotypeALC1 KO #3           0.22933    
## poly(Olaparib, 3)3:genotypeALC1 KO #3           0.60425    
## poly(Olaparib, 3)1:genotypeALC1 KO PARP1 KO #1  0.62000    
## poly(Olaparib, 3)2:genotypeALC1 KO PARP1 KO #1  0.61194    
## poly(Olaparib, 3)3:genotypeALC1 KO PARP1 KO #1  0.90876    
## poly(Olaparib, 3)1:genotypeALC1 KO PARP1 KO #2  0.19181    
## poly(Olaparib, 3)2:genotypeALC1 KO PARP1 KO #2  0.78378    
## poly(Olaparib, 3)3:genotypeALC1 KO PARP1 KO #2  0.89582    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 512.8 on 81 degrees of freedom
## Multiple R-squared:  0.7768, Adjusted R-squared:  0.6941 
## F-statistic: 9.395 on 30 and 81 DF,  p-value: 5.106e-16
cat("AIC: ", AIC(fit9))
## AIC:  1743.267
simres <- simulateResiduals(fittedModel = fit9)
plot(simres)

fit10 <- lm(NormCounts ~ poly(Olaparib, 3)*genotype, data = dataset)
print(summary(fit10))
## 
## Call:
## lm(formula = NormCounts ~ poly(Olaparib, 3) * genotype, data = dataset)
## 
## Residuals:
##       Min        1Q    Median        3Q       Max 
## -0.233299 -0.046833  0.007519  0.051494  0.248136 
## 
## Coefficients:
##                                                  Estimate Std. Error t value
## (Intercept)                                     1.000e+00  2.335e-02  42.835
## poly(Olaparib, 3)1                             -2.828e+00  2.471e-01 -11.446
## poly(Olaparib, 3)2                             -6.107e-01  2.471e-01  -2.472
## poly(Olaparib, 3)3                              2.086e-01  2.471e-01   0.844
## genotypePARP1 KO                                2.267e-16  3.302e-02   0.000
## genotypeALC1 KO #1                              9.707e-17  3.302e-02   0.000
## genotypeALC1 KO #2                              4.795e-16  3.302e-02   0.000
## genotypeALC1 KO #3                              4.313e-16  3.302e-02   0.000
## genotypeALC1 KO PARP1 KO #1                     3.832e-16  3.302e-02   0.000
## genotypeALC1 KO PARP1 KO #2                     4.676e-16  3.302e-02   0.000
## poly(Olaparib, 3)1:genotypePARP1 KO             1.341e+00  3.494e-01   3.837
## poly(Olaparib, 3)2:genotypePARP1 KO            -1.201e-01  3.494e-01  -0.344
## poly(Olaparib, 3)3:genotypePARP1 KO            -6.058e-01  3.494e-01  -1.734
## poly(Olaparib, 3)1:genotypeALC1 KO #1          -2.403e+00  3.494e-01  -6.878
## poly(Olaparib, 3)2:genotypeALC1 KO #1           1.622e+00  3.494e-01   4.643
## poly(Olaparib, 3)3:genotypeALC1 KO #1          -7.619e-01  3.494e-01  -2.181
## poly(Olaparib, 3)1:genotypeALC1 KO #2          -2.070e+00  3.494e-01  -5.925
## poly(Olaparib, 3)2:genotypeALC1 KO #2           1.458e+00  3.494e-01   4.173
## poly(Olaparib, 3)3:genotypeALC1 KO #2          -5.276e-01  3.494e-01  -1.510
## poly(Olaparib, 3)1:genotypeALC1 KO #3          -1.786e+00  3.494e-01  -5.112
## poly(Olaparib, 3)2:genotypeALC1 KO #3           1.196e+00  3.494e-01   3.422
## poly(Olaparib, 3)3:genotypeALC1 KO #3          -5.387e-01  3.494e-01  -1.542
## poly(Olaparib, 3)1:genotypeALC1 KO PARP1 KO #1  1.096e+00  3.494e-01   3.135
## poly(Olaparib, 3)2:genotypeALC1 KO PARP1 KO #1  4.771e-01  3.494e-01   1.365
## poly(Olaparib, 3)3:genotypeALC1 KO PARP1 KO #1 -2.018e-01  3.494e-01  -0.578
## poly(Olaparib, 3)1:genotypeALC1 KO PARP1 KO #2  7.520e-01  3.494e-01   2.152
## poly(Olaparib, 3)2:genotypeALC1 KO PARP1 KO #2  3.420e-02  3.494e-01   0.098
## poly(Olaparib, 3)3:genotypeALC1 KO PARP1 KO #2 -2.311e-01  3.494e-01  -0.661
##                                                Pr(>|t|)    
## (Intercept)                                     < 2e-16 ***
## poly(Olaparib, 3)1                              < 2e-16 ***
## poly(Olaparib, 3)2                             0.015461 *  
## poly(Olaparib, 3)3                             0.400861    
## genotypePARP1 KO                               1.000000    
## genotypeALC1 KO #1                             1.000000    
## genotypeALC1 KO #2                             1.000000    
## genotypeALC1 KO #3                             1.000000    
## genotypeALC1 KO PARP1 KO #1                    1.000000    
## genotypeALC1 KO PARP1 KO #2                    1.000000    
## poly(Olaparib, 3)1:genotypePARP1 KO            0.000240 ***
## poly(Olaparib, 3)2:genotypePARP1 KO            0.731994    
## poly(Olaparib, 3)3:genotypePARP1 KO            0.086645 .  
## poly(Olaparib, 3)1:genotypeALC1 KO #1          1.01e-09 ***
## poly(Olaparib, 3)2:genotypeALC1 KO #1          1.26e-05 ***
## poly(Olaparib, 3)3:genotypeALC1 KO #1          0.032005 *  
## poly(Olaparib, 3)1:genotypeALC1 KO #2          6.66e-08 ***
## poly(Olaparib, 3)2:genotypeALC1 KO #2          7.31e-05 ***
## poly(Olaparib, 3)3:genotypeALC1 KO #2          0.134765    
## poly(Olaparib, 3)1:genotypeALC1 KO #3          1.97e-06 ***
## poly(Olaparib, 3)2:genotypeALC1 KO #3          0.000962 ***
## poly(Olaparib, 3)3:genotypeALC1 KO #3          0.126893    
## poly(Olaparib, 3)1:genotypeALC1 KO PARP1 KO #1 0.002366 ** 
## poly(Olaparib, 3)2:genotypeALC1 KO PARP1 KO #1 0.175778    
## poly(Olaparib, 3)3:genotypeALC1 KO PARP1 KO #1 0.565075    
## poly(Olaparib, 3)1:genotypeALC1 KO PARP1 KO #2 0.034239 *  
## poly(Olaparib, 3)2:genotypeALC1 KO PARP1 KO #2 0.922264    
## poly(Olaparib, 3)3:genotypeALC1 KO PARP1 KO #2 0.510194    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.09338 on 84 degrees of freedom
## Multiple R-squared:  0.9484, Adjusted R-squared:  0.9318 
## F-statistic: 57.17 on 27 and 84 DF,  p-value: < 2.2e-16
cat("AIC: ", AIC(fit10))
## AIC:  -187.4945
simres <- simulateResiduals(fittedModel = fit10)
plot(simres)

fit11 <- lm(NormCounts2 ~ poly(Olaparib, 3)*genotype, data = dataset)
print(summary(fit11))
## 
## Call:
## lm(formula = NormCounts2 ~ poly(Olaparib, 3) * genotype, data = dataset)
## 
## Residuals:
##       Min        1Q    Median        3Q       Max 
## -0.138074 -0.031185  0.005882  0.035369  0.141735 
## 
## Coefficients:
##                                                 Estimate Std. Error t value
## (Intercept)                                     0.752846   0.015092  49.885
## poly(Olaparib, 3)1                             -2.128936   0.159716 -13.329
## poly(Olaparib, 3)2                             -0.459768   0.159716  -2.879
## poly(Olaparib, 3)3                              0.157055   0.159716   0.983
## genotypePARP1 KO                                0.115915   0.021343   5.431
## genotypeALC1 KO #1                             -0.202372   0.021343  -9.482
## genotypeALC1 KO #2                             -0.181647   0.021343  -8.511
## genotypeALC1 KO #3                             -0.161010   0.021343  -7.544
## genotypeALC1 KO PARP1 KO #1                     0.063452   0.021343   2.973
## genotypeALC1 KO PARP1 KO #2                     0.057072   0.021343   2.674
## poly(Olaparib, 3)1:genotypePARP1 KO             0.837073   0.225873   3.706
## poly(Olaparib, 3)2:genotypePARP1 KO            -0.175094   0.225873  -0.775
## poly(Olaparib, 3)3:genotypePARP1 KO            -0.502073   0.225873  -2.223
## poly(Olaparib, 3)1:genotypeALC1 KO #1          -0.750574   0.225873  -3.323
## poly(Olaparib, 3)2:genotypeALC1 KO #1           1.016525   0.225873   4.500
## poly(Olaparib, 3)3:genotypeALC1 KO #1          -0.461642   0.225873  -2.044
## poly(Olaparib, 3)1:genotypeALC1 KO #2          -0.668821   0.225873  -2.961
## poly(Olaparib, 3)2:genotypeALC1 KO #2           0.943698   0.225873   4.178
## poly(Olaparib, 3)3:genotypeALC1 KO #2          -0.339283   0.225873  -1.502
## poly(Olaparib, 3)1:genotypeALC1 KO #3          -0.601835   0.225873  -2.664
## poly(Olaparib, 3)2:genotypeALC1 KO #3           0.806003   0.225873   3.568
## poly(Olaparib, 3)3:genotypeALC1 KO #3          -0.352408   0.225873  -1.560
## poly(Olaparib, 3)1:genotypeALC1 KO PARP1 KO #1  0.714823   0.225873   3.165
## poly(Olaparib, 3)2:genotypeALC1 KO PARP1 KO #1  0.350681   0.225873   1.553
## poly(Olaparib, 3)3:genotypeALC1 KO PARP1 KO #1 -0.151507   0.225873  -0.671
## poly(Olaparib, 3)1:genotypeALC1 KO PARP1 KO #2  0.447700   0.225873   1.982
## poly(Olaparib, 3)2:genotypeALC1 KO PARP1 KO #2 -0.007157   0.225873  -0.032
## poly(Olaparib, 3)3:genotypeALC1 KO PARP1 KO #2 -0.175250   0.225873  -0.776
##                                                Pr(>|t|)    
## (Intercept)                                     < 2e-16 ***
## poly(Olaparib, 3)1                              < 2e-16 ***
## poly(Olaparib, 3)2                             0.005064 ** 
## poly(Olaparib, 3)3                             0.328265    
## genotypePARP1 KO                               5.35e-07 ***
## genotypeALC1 KO #1                             6.36e-15 ***
## genotypeALC1 KO #2                             5.73e-13 ***
## genotypeALC1 KO #3                             4.92e-11 ***
## genotypeALC1 KO PARP1 KO #1                    0.003848 ** 
## genotypeALC1 KO PARP1 KO #2                    0.009004 ** 
## poly(Olaparib, 3)1:genotypePARP1 KO            0.000376 ***
## poly(Olaparib, 3)2:genotypePARP1 KO            0.440405    
## poly(Olaparib, 3)3:genotypePARP1 KO            0.028915 *  
## poly(Olaparib, 3)1:genotypeALC1 KO #1          0.001321 ** 
## poly(Olaparib, 3)2:genotypeALC1 KO #1          2.16e-05 ***
## poly(Olaparib, 3)3:genotypeALC1 KO #1          0.044105 *  
## poly(Olaparib, 3)1:genotypeALC1 KO #2          0.003985 ** 
## poly(Olaparib, 3)2:genotypeALC1 KO #2          7.16e-05 ***
## poly(Olaparib, 3)3:genotypeALC1 KO #2          0.136822    
## poly(Olaparib, 3)1:genotypeALC1 KO #3          0.009243 ** 
## poly(Olaparib, 3)2:genotypeALC1 KO #3          0.000597 ***
## poly(Olaparib, 3)3:genotypeALC1 KO #3          0.122472    
## poly(Olaparib, 3)1:genotypeALC1 KO PARP1 KO #1 0.002162 ** 
## poly(Olaparib, 3)2:genotypeALC1 KO PARP1 KO #1 0.124288    
## poly(Olaparib, 3)3:genotypeALC1 KO PARP1 KO #1 0.504213    
## poly(Olaparib, 3)1:genotypeALC1 KO PARP1 KO #2 0.050739 .  
## poly(Olaparib, 3)2:genotypeALC1 KO PARP1 KO #2 0.974799    
## poly(Olaparib, 3)3:genotypeALC1 KO PARP1 KO #2 0.439999    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.06037 on 84 degrees of freedom
## Multiple R-squared:  0.9576, Adjusted R-squared:  0.944 
## F-statistic: 70.28 on 27 and 84 DF,  p-value: < 2.2e-16
cat("AIC: ", AIC(fit11))
## AIC:  -285.2159
simres <- simulateResiduals(fittedModel = fit11)
plot(simres)

fit12 <- lmer(Counts ~ poly(Olaparib, 3)*genotype + (1|UID), data = dataset)
print(summary(fit12))
## Linear mixed model fit by REML. t-tests use Satterthwaite's method [
## lmerModLmerTest]
## Formula: Counts ~ poly(Olaparib, 3) * genotype + (1 | UID)
##    Data: dataset
## 
## REML criterion at convergence: 1172.9
## 
## Scaled residuals: 
##      Min       1Q   Median       3Q      Max 
## -1.62206 -0.45619 -0.00004  0.51995  1.66007 
## 
## Random effects:
##  Groups   Name        Variance Std.Dev.
##  UID      (Intercept) 220488   469.6   
##  Residual              39950   199.9   
## Number of obs: 112, groups:  UID, 28
## 
## Fixed effects:
##                                                Estimate Std. Error       df
## (Intercept)                                     2248.00     240.04    21.00
## poly(Olaparib, 3)1                             -6271.89     528.82    63.00
## poly(Olaparib, 3)2                             -1344.84     528.82    63.00
## poly(Olaparib, 3)3                               367.99     528.82    63.00
## genotypePARP1 KO                                -261.56     339.47    21.00
## genotypeALC1 KO #1                              -512.25     339.47    21.00
## genotypeALC1 KO #2                              -134.19     339.47    21.00
## genotypeALC1 KO #3                              -330.25     339.47    21.00
## genotypeALC1 KO PARP1 KO #1                      897.06     339.47    21.00
## genotypeALC1 KO PARP1 KO #2                     -469.63     339.47    21.00
## poly(Olaparib, 3)1:genotypePARP1 KO             3235.85     747.87    63.00
## poly(Olaparib, 3)2:genotypePARP1 KO              -95.58     747.87    63.00
## poly(Olaparib, 3)3:genotypePARP1 KO            -1186.25     747.87    63.00
## poly(Olaparib, 3)1:genotypeALC1 KO #1          -2560.97     747.87    63.00
## poly(Olaparib, 3)2:genotypeALC1 KO #1           2809.89     747.87    63.00
## poly(Olaparib, 3)3:genotypeALC1 KO #1          -1272.78     747.87    63.00
## poly(Olaparib, 3)1:genotypeALC1 KO #2          -3841.44     747.87    63.00
## poly(Olaparib, 3)2:genotypeALC1 KO #2           3027.78     747.87    63.00
## poly(Olaparib, 3)3:genotypeALC1 KO #2          -1095.97     747.87    63.00
## poly(Olaparib, 3)1:genotypeALC1 KO #3          -2371.95     747.87    63.00
## poly(Olaparib, 3)2:genotypeALC1 KO #3           2323.84     747.87    63.00
## poly(Olaparib, 3)3:genotypeALC1 KO #3           -998.31     747.87    63.00
## poly(Olaparib, 3)1:genotypeALC1 KO PARP1 KO #1   955.00     747.87    63.00
## poly(Olaparib, 3)2:genotypeALC1 KO PARP1 KO #1   977.10     747.87    63.00
## poly(Olaparib, 3)3:genotypeALC1 KO PARP1 KO #1  -220.56     747.87    63.00
## poly(Olaparib, 3)1:genotypeALC1 KO PARP1 KO #2  2525.30     747.87    63.00
## poly(Olaparib, 3)2:genotypeALC1 KO PARP1 KO #2   528.20     747.87    63.00
## poly(Olaparib, 3)3:genotypeALC1 KO PARP1 KO #2  -252.01     747.87    63.00
##                                                t value Pr(>|t|)    
## (Intercept)                                      9.365 6.03e-09 ***
## poly(Olaparib, 3)1                             -11.860  < 2e-16 ***
## poly(Olaparib, 3)2                              -2.543 0.013456 *  
## poly(Olaparib, 3)3                               0.696 0.489069    
## genotypePARP1 KO                                -0.771 0.449579    
## genotypeALC1 KO #1                              -1.509 0.146202    
## genotypeALC1 KO #2                              -0.395 0.696616    
## genotypeALC1 KO #3                              -0.973 0.341701    
## genotypeALC1 KO PARP1 KO #1                      2.643 0.015224 *  
## genotypeALC1 KO PARP1 KO #2                     -1.383 0.181067    
## poly(Olaparib, 3)1:genotypePARP1 KO              4.327 5.51e-05 ***
## poly(Olaparib, 3)2:genotypePARP1 KO             -0.128 0.898715    
## poly(Olaparib, 3)3:genotypePARP1 KO             -1.586 0.117706    
## poly(Olaparib, 3)1:genotypeALC1 KO #1           -3.424 0.001089 ** 
## poly(Olaparib, 3)2:genotypeALC1 KO #1            3.757 0.000378 ***
## poly(Olaparib, 3)3:genotypeALC1 KO #1           -1.702 0.093708 .  
## poly(Olaparib, 3)1:genotypeALC1 KO #2           -5.137 2.92e-06 ***
## poly(Olaparib, 3)2:genotypeALC1 KO #2            4.049 0.000143 ***
## poly(Olaparib, 3)3:genotypeALC1 KO #2           -1.465 0.147767    
## poly(Olaparib, 3)1:genotypeALC1 KO #3           -3.172 0.002343 ** 
## poly(Olaparib, 3)2:genotypeALC1 KO #3            3.107 0.002831 ** 
## poly(Olaparib, 3)3:genotypeALC1 KO #3           -1.335 0.186720    
## poly(Olaparib, 3)1:genotypeALC1 KO PARP1 KO #1   1.277 0.206302    
## poly(Olaparib, 3)2:genotypeALC1 KO PARP1 KO #1   1.307 0.196128    
## poly(Olaparib, 3)3:genotypeALC1 KO PARP1 KO #1  -0.295 0.769026    
## poly(Olaparib, 3)1:genotypeALC1 KO PARP1 KO #2   3.377 0.001261 ** 
## poly(Olaparib, 3)2:genotypeALC1 KO PARP1 KO #2   0.706 0.482620    
## poly(Olaparib, 3)3:genotypeALC1 KO PARP1 KO #2  -0.337 0.737255    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
cat("AIC: ", AIC(fit12))
## AIC:  1232.853
simres <- simulateResiduals(fittedModel = fit12)
plot(simres)

Compare Results

ICtab(fit1,fit2,fit3,fit4,
      fit5,fit6,fit7,fit8,
      fit9,fit10,fit11,fit12,
      base=T)
##       AIC    dAIC   df
## fit11 -285.2    0.0 29
## fit7  -284.2    1.1 22
## fit3  -244.4   40.8 15
## fit10 -187.5   97.7 29
## fit6  -186.8   98.4 22
## fit2  -150.2  135.0 15
## fit12 1232.9 1518.1 30
## fit8  1328.7 1613.9 23
## fit4  1484.3 1769.5 16
## fit1  1724.8 2010.0 18
## fit5  1731.2 2016.4 25
## fit9  1743.3 2028.5 32

Final Result

fit <- fit7

output <- coef(summary(fit))
output <- output[grep("Olaparib", rownames(output)),]

rownames(output) <- gsub("poly\\(|, [1-3]\\)","", rownames(output) )
rownames(output) <- gsub("genotype",  paste0(" ",levels(dataset$genotype)[1], " vs. "), rownames(output))
rownames(output)[!(grepl("vs", rownames(output)))] <- paste(rownames(output)[!(grepl("vs", rownames(output)))], levels(dataset$genotype)[1],  sep = " in " )

# suggested result table
kable(output, row.names = T)
Estimate Std. Error t value Pr(>|t|)
Olaparib1 in WT -2.1289359 0.1641156 -12.9721723 0.0000000
Olaparib2 in WT -0.4597677 0.1641156 -2.8014868 0.0062139
Olaparib1: WT vs. PARP1 KO 0.8370732 0.2320945 3.6066046 0.0005064
Olaparib2: WT vs. PARP1 KO -0.1750941 0.2320945 -0.7544085 0.4525518
Olaparib1: WT vs. ALC1 KO #1 -0.7505743 0.2320945 -3.2339164 0.0017021
Olaparib2: WT vs. ALC1 KO #1 1.0165248 0.2320945 4.3797878 0.0000317
Olaparib1: WT vs. ALC1 KO #2 -0.6688214 0.2320945 -2.8816770 0.0049338
Olaparib2: WT vs. ALC1 KO #2 0.9436976 0.2320945 4.0660054 0.0001015
Olaparib1: WT vs. ALC1 KO #3 -0.6018346 0.2320945 -2.5930584 0.0110840
Olaparib2: WT vs. ALC1 KO #3 0.8060030 0.2320945 3.4727359 0.0007904
Olaparib1: WT vs. ALC1 KO PARP1 KO #1 0.7148231 0.2320945 3.0798791 0.0027383
Olaparib2: WT vs. ALC1 KO PARP1 KO #1 0.3506814 0.2320945 1.5109423 0.1342680
Olaparib1: WT vs. ALC1 KO PARP1 KO #2 0.4476996 0.2320945 1.9289539 0.0568530
Olaparib2: WT vs. ALC1 KO PARP1 KO #2 -0.0071566 0.2320945 -0.0308348 0.9754688
write.table(output, file = "Figure1D_Stats_Ref_WT.txt", quote = F, sep = "\t", row.names = T, col.names = NA)
# re-fit with ALC1KO reference
dataset$genotype <- relevel(dataset$genotype, ref = "ALC1 KO #1")
        
fit <- lm(NormCounts2 ~ poly(Olaparib, 2)*genotype, data = dataset)


output <- coef(summary(fit))
output <- output[grep("Olaparib", rownames(output)),]

rownames(output) <- gsub("poly\\(|, [1-3]\\)","", rownames(output) )
rownames(output) <- gsub("genotype",  paste0(" ",levels(dataset$genotype)[1], " vs. "), rownames(output))
rownames(output)[!(grepl("vs", rownames(output)))] <- paste(rownames(output)[!(grepl("vs", rownames(output)))], levels(dataset$genotype)[1],  sep = " in " )

# suggested result table
kable(output, row.names = T)
Estimate Std. Error t value Pr(>|t|)
Olaparib1 in ALC1 KO #1 -2.8795102 0.1641156 -17.5456207 0.0000000
Olaparib2 in ALC1 KO #1 0.5567570 0.1641156 3.3924686 0.0010269
Olaparib1: ALC1 KO #1 vs. WT 0.7505743 0.2320945 3.2339164 0.0017021
Olaparib2: ALC1 KO #1 vs. WT -1.0165248 0.2320945 -4.3797878 0.0000317
Olaparib1: ALC1 KO #1 vs. PARP1 KO 1.5876474 0.2320945 6.8405210 0.0000000
Olaparib2: ALC1 KO #1 vs. PARP1 KO -1.1916188 0.2320945 -5.1341964 0.0000016
Olaparib1: ALC1 KO #1 vs. ALC1 KO #2 0.0817528 0.2320945 0.3522394 0.7254732
Olaparib2: ALC1 KO #1 vs. ALC1 KO #2 -0.0728272 0.2320945 -0.3137825 0.7544044
Olaparib1: ALC1 KO #1 vs. ALC1 KO #3 0.1487396 0.2320945 0.6408580 0.5232256
Olaparib2: ALC1 KO #1 vs. ALC1 KO #3 -0.2105218 0.2320945 -0.9070519 0.3667750
Olaparib1: ALC1 KO #1 vs. ALC1 KO PARP1 KO #1 1.4653973 0.2320945 6.3137955 0.0000000
Olaparib2: ALC1 KO #1 vs. ALC1 KO PARP1 KO #1 -0.6658433 0.2320945 -2.8688455 0.0051209
Olaparib1: ALC1 KO #1 vs. ALC1 KO PARP1 KO #2 1.1982739 0.2320945 5.1628703 0.0000014
Olaparib2: ALC1 KO #1 vs. ALC1 KO PARP1 KO #2 -1.0236813 0.2320945 -4.4106226 0.0000282
write.table(output, file = "Figure1D_Stats_Ref_ALC1.txt", quote = F, sep = "\t", row.names = T, col.names = NA)

Anova

fit7a <- lm(NormCounts2 ~ poly(Olaparib, 2)*genotype, data = dataset)
fit7b <- lm(NormCounts2 ~ poly(Olaparib, 2)+genotype, data = dataset)

# anova table
anova(fit7a, fit7b)
## Analysis of Variance Table
## 
## Model 1: NormCounts2 ~ poly(Olaparib, 2) * genotype
## Model 2: NormCounts2 ~ poly(Olaparib, 2) + genotype
##   Res.Df     RSS  Df Sum of Sq      F    Pr(>F)    
## 1     91 0.35014                                   
## 2    103 0.96183 -12  -0.61169 13.248 2.661e-15 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1